<link href="http://statics.1024tools.com/css/markdown/github.css" rel="stylesheet"/>
<h3 id="-">问题</h3>
<blockquote>
    <p>当前sfa系统稳定性低，有些请求处理比较慢，每天大于两秒的请求有上千个，优化的时候只能靠猜测
        当前迫切需要一款追踪工具对系统问题进行监控，对系统问题进行诊断</p>
</blockquote>
<h3 id="-">使用全链路追踪的必要性</h3>
<blockquote>
    <p>请求链路追踪，故障快速定位：可以通过调用链结合业务日志快速定位错误信息。
        可视化： 各个阶段耗时，进行性能分析。
        依赖优化：各个调用环节的可用性、梳理服务依赖关系以及优化。
        数据分析，优化交互。</p>
</blockquote>
<ul>
    <li>目前分布式链路追踪系统基本都是根据谷歌的《Dapper大规模分布式系统的跟踪系统》这篇论文发展而来，主流的有zipkin，pinpoint，skywalking，cat。</li>
</ul>
<ul>
    <li><a href="https://skyapm.github.io/document-cn-translation-of-skywalking/">SkyWalking 文档中文版</a></li>
    <li><a href="https://github.com/pinpoint-apm/pinpoint">pinpoint git</a>
        <blockquote>
            <p>SkyWalking是本土开源的基于字节码注入的调用链分析，以及应用监控分析工具。特点是支持多种插件，UI功能较强，接入端无代码侵入。目前已加入Apache孵化器。</p>
        </blockquote>
    </li>
    <li><a href="https://pinpoint-apm.github.io/pinpoint/plugindevguide.html">pinpoint git io</a>
        <blockquote>
            <p>Pinpoint是韩国人开源的基于字节码注入的调用链分析，以及应用监控分析工具。特点是支持多种插件，UI功能强大，接入端无代码侵入。</p>
        </blockquote>
    </li>
    <li><a href="https://github.com/openzipkin/zipkin">zipkin </a>
        <blockquote>
            <p>Zipkin是Twitter开源的调用链分析工具，目前基于springcloud sleuth得到了广泛的使用，特点是轻量，使用部署简单。</p>
        </blockquote>
    </li>
    <li><a href="https://github.com/dianping/cat">cat </a>
        <blockquote>
            <p>CAT是大众点评开源的基于编码和配置的调用链分析，应用监控分析，日志采集，监控报警等一系列的监控平台工具。</p>
        </blockquote>
    </li>
</ul>
<table>
    <thead>
    <tr>
        <th>类别</th>
        <th>Zipkin</th>
        <th>Pinpoint</th>
        <th>SkyWalking</th>
        <th>CAT</th>
    </tr>
    </thead>
    <tbody>
    <tr>
        <td>实现方式</td>
        <td>拦截请求，发送（HTTP，mq）数据至zipkin服务</td>
        <td>java探针，字节码增强</td>
        <td>java探针，字节码增强</td>
        <td>代码埋点（拦截器，注解，过滤器等）</td>
    </tr>
    </tbody>
</table>
<ul>
    <li>因为zipkin和cat对代码有一定的侵入性，系统改造成本高，有比较高的风险。</li>
    <li><p>而pinpoint和skywalking都是基于字节码注入技术，可以做到完全的代码无侵入。对现有系统的改造极小。</p>
    </li>
    <li><p>skywalking agent系统负载比pinpoint更小一点 ， 支持可插拔配置，存储方式更加灵活，功能更加完备，接口诊断粒度更细</p>
    </li>
</ul>
<h3 id="-">落地方案</h3>
<ul>
    <li>skywalking 分 客户端，采集端，web服务 ，客户端需要添加应用程序启动参数中。</li>
    <li><p>采集端和web端部署到同一台服务上，最少4g内存，最少40g磁盘，可以设置 1/10采集减轻负载</p>
    </li>
    <li><p>存储 可选mysql hdfs，es 试点服务可以搭建单节点es服务，数据可不用分片，数据默认存储7天，最低要求 8g内存200g磁盘</p>
    </li>
</ul>
<h3 id="-">参考</h3>
<h5 id="-skywalking-pinpoint-cat-zipkin-https-zhuanlan-zhihu-com-p-60436915-"><a
        href="https://zhuanlan.zhihu.com/p/60436915">监控系统比较 Skywalking Pinpoint Cat zipkin</a></h5>
<h5 id="-zipkin-pinpoint-skywalking-cat-https-www-jianshu-com-p-0fbbf99a236e-"><a
        href="https://www.jianshu.com/p/0fbbf99a236e">Zipkin，Pinpoint，SkyWalking，CAT</a></h5>
<h5 id="-skywalking-pinpoint-https-juejin-cn-post-6844903560732213261-"><a
        href="https://juejin.cn/post/6844903560732213261">skywalking pinpoint详细比较</a></h5>
